SU
Section: Misc. Reference Manual Pages (1L)
Index
Return to Main Contents
NAME
su - run a shell with substitute user and group IDs
SYNOPSIS
su
[-flmp] [-c command] [-s shell] [--login] [--fast]
[--preserve-environment] [--command=command] [--shell=shell] [-]
[user [arg...]]
DESCRIPTION
This manual page
documents the GNU version of
su.
su
allows one user to temporarily become another user. It runs a shell
with the real and effective user ID, group ID, and supplemental groups
of USER. If no USER is given, the default is root, the super-user.
The shell run is taken from USER's password entry, or /bin/sh if none
is specified there. If USER has a password,
su
prompts for the password unless run by a user with real user ID 0 (the
super-user).
By default,
su
does not change the current directory. It sets the environment
variables `HOME' and `SHELL' from the password entry for USER, and if
USER is not the super-user, sets `USER' and `LOGNAME' to USER. By
default, the shell is not a login shell.
If one or more ARGs are given, they are passed as additional
arguments to the shell.
su
does not handle /bin/sh or other shells specially
(setting argv[0] to "-su", passing -c only to certain shells, etc.).
On systems that have syslog,
su
can be compiled to report failed, and optionally successful,
su
attempts using syslog.
This program does not support a "wheel group" that restricts who can
su
to super-user accounts, because that can help fascist system
administrators hold unwarranted power over other users.
OPTIONS
- -, -l, --login
-
Make the shell a login shell. This means the following. Unset all
environment variables except `TERM', `HOME', and `SHELL' (which are
set as described above), and `USER' and `LOGNAME' (which are set, even
for the super-user, as described above), and set `PATH' to a
compiled-in default value. Change to USER's home directory. Prepend
"-" to the shell's name, to make it read its login startup file(s).
- -c COMMAND, --commmand=COMMAND
-
Pass COMMAND, a single command line to run, to the shell with a
-c
option instead of starting an interactive shell.
- -f, --fast
-
Pass the
-f
option to the shell. This probably only makes sense with
csh
and
tcsh,
for which the
-f
option prevents reading the startup file (.cshrc). With Bourne-like
shells, the
-f
option disables filename pattern expansion, which is not a generally
desirable thing to do.
- -m, -p, --preserve-environment
-
Do not change the environment variables `HOME', `USER', `LOGNAME', or
`SHELL'. Run the shell given in the environment variable `SHELL'
instead of USER's shell from /etc/passwd, unless the user running
su
is not the superuser and USER's shell is restricted. A restricted
shell is one that is not listed in the file /etc/shells, or in a
compiled-in list if that file does not exist. Parts of what this
option does can be overridden by
--login
and
--shell.
- -s, --shell shell
-
Run SHELL instead of USER's shell from /etc/passwd,
unless the user running
su
is not the superuser and USER's shell is restricted.
The long-named options can be introduced with `+' as well as `--',
for compatibility with previous releases. Eventually support for `+'
will be removed, because it is incompatible with the POSIX.2 standard.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
This document was created by
man2html,
using the manual pages.
Time: 17:13:02 GMT, January 16, 2023